Skip to content

feat(staged): render hashtag badges in timeline rows and fix badge overflow#625

Merged
matt2e merged 1 commit intomainfrom
use-hashtag-badges-in-timeline
Apr 14, 2026
Merged

feat(staged): render hashtag badges in timeline rows and fix badge overflow#625
matt2e merged 1 commit intomainfrom
use-hashtag-badges-in-timeline

Conversation

@matt2e
Copy link
Copy Markdown
Contributor

@matt2e matt2e commented Apr 14, 2026

Summary

  • Extract shared renderHashtagTokens and hasHashtagTokens helpers from SessionModal into hashtagItems.ts so they can be reused across components
  • Render #type:id hashtag badges inline in BranchTimeline / TimelineRow titles via pre-rendered HTML (titleHtml prop)
  • Fix badge overflow in SessionModal by adding overflow: hidden to the message text container
  • Add .hashtag-badge styles scoped to .timeline-title for consistent badge appearance

Test plan

  • Verify hashtag badges render correctly in timeline rows for sessions with #type:id tokens in titles
  • Verify badges in SessionModal still render correctly after the refactor
  • Confirm no badge overflow/clipping issues in either timeline or modal views
  • Check that timeline rows without hashtag tokens render unchanged

🤖 Generated with Claude Code

…erflow

Extract renderHashtagTokens into shared hashtagItems.ts utility and use it
in BranchTimeline to render #type:id tokens as inline badges in timeline
row titles (especially visible for active session prompts). Add overflow:
hidden to human-bubble to prevent badges from extending outside chat
message containers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@matt2e matt2e requested review from baxen and wesbillman as code owners April 14, 2026 06:42
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 61c6ce7011

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +107 to +110
const branchId = branch.id;
const projectId = branch.projectId;
let stale = false;
buildBranchHashtagItems(branchId, projectId).then((items) => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Recompute hashtag items from refreshed timeline state

This effect builds hashtagItems via a separate async fetch, but hashtagItems is never updated in loadTimeline() (the source of truth for live row data), so badge labels can become stale or fall back to raw IDs after new commits/notes/reviews arrive until the card remounts. It also introduces an extra timeline/project-notes request path per card instead of reusing already-loaded timeline data, which can noticeably increase load/revalidation work in branch lists.

Useful? React with 👍 / 👎.

@matt2e matt2e merged commit ecad9f8 into main Apr 14, 2026
5 checks passed
@matt2e matt2e deleted the use-hashtag-badges-in-timeline branch April 14, 2026 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant